//==========================================================================
/**
* @file	  : Hannover.h
* @author : cpzhang <chengpengzhang@gmail.com>
* created : 2010-4-29   18:25
* purpose : 
*/
//==========================================================================

#ifndef __Hannover_h__
#define __Hannover_h__

//
#include "Buddha.h"

//
#include "Game.h"

//
#include "IModules.h"
//#define EuclidExport
//
class Hannover : public Buddha::Game
{
public:
	Hannover();
	~Hannover();

public:
	//
	virtual bool update();

	//
	virtual bool forePlay();
	virtual bool postPlay();
	//
	virtual bool foreRender();

	//
	virtual bool rendering();

	//
	virtual bool postRender();

private:
	//
	bool createModules();
	
	//
	bool setViewport();

	bool initGeometry();

	//
	bool createFonts();

	void renderGeometry();
	//
private:
	IModules*				_modules;
	Euclid::IRenderSystem*	_renderSystem;
	Euclid::ISceneManager*	_sceneManager;
	Euclid::IBufferFactory*	_bufferManager;
	Euclid::IFontFactory*	_fontManager;
	Euclid::VertexBuffer*	_vb;
	std::string				_freeTypeFont;
};

#endif // __Hannover_h__
